#include <iostream>     // std::cout, std::cin
#include <algorithm>    // std::sort
#include <vector>       // std::vector

#include "ej2.h"

using namespace std;


Joya::Joya(int num): numero(num)
{
  cin >> di;
  cin >> ti;
  pd = di/ti;
}


vector<Joya> pedir_entrada()	//O(n)
{
  int n;
  cin >> n;			//cantidad de joyas
  vector<Joya> joyas;

  for(int i = 0; i < n; i++)
  {
    Joya x = Joya(i);
    joyas.push_back(x);
  }  

return joyas;
}

void imprimir(vector<Joya> joyas)
{
  for(int i = 0; i < joyas.size(); i++)
  {
    cout << joyas[i].numero+1 << " ";
  }  
}

int calcular_perdida(vector<Joya> joyas)		//O(n)
{
  int perdida = 0;
  int dias = 0;

  for (int i = 0; i < joyas.size() ; i++ )
  {
    dias += joyas[i].ti;
    perdida += dias*joyas[i].di;
  }

return perdida;
}


bool comparacion (Joya i,Joya j) 
{
  return (i.pd > j.pd); 
}


void funcionPrincipal()			//n: cantidad de joyas
{
  vector<Joya> joyas = pedir_entrada();					//O(n)

  //ordena las joyas de mayor a menor de acuerdo a su pd= di/ti
  sort(joyas.begin(), joyas.end(), comparacion);		//O(nlog(n))

  imprimir(joyas);

	//calcula la perdida total de la fabricación en el anterior
  int perdida = calcular_perdida(joyas);		//O(n)

  cout << perdida << endl;
}

int main()
{
  while(cin.peek() != 48) {
    funcionPrincipal();
    cin.get();
  }

  return 0;
}
